#ifndef __JSON__PATH_H__
#define __JSON__PATH_H__

#include <string>
#include <vector>

#include "JsonPathToken.h"

class JsonPath
{
public:
    JsonPath(std::string strPath);
    JsonPath(const JsonPath& r);
    JsonPath& operator=(const JsonPath& r);
    bool IsValid();

private:
    bool Tokenization(std::string strPath);
    void CheckTmpKey(std::string strTmpKey);
    void Simplification();

public:
    bool m_bInvalid;
    std::vector<JsonPathToken> m_vectElement;
};

#endif // __JSON__PATH_H__
